﻿/******************************************************************************* 
  Copyright (C), 1988-2020, zeno Tech. Co., Ltd.
  Description:  异常消息上报接口
  Function List:
            
*******************************************************************************/
#ifndef SYS_ERROR_H 
#define SYS_ERROR_H 

#ifdef __cplusplus
extern "C" {
#endif

/*=============================================================================
                                 Includes                                  
==============================================================================*/


/*=============================================================================
                               Macro Definition
==============================================================================*/

                        
/*=============================================================================
                        Local Structures and Typedef 
==============================================================================*/
/* 系统异常类型，该定义必须与应用层的SystemErrorType定义一至 */
typedef enum
{
    SYS_ERRTYPE_REBOOT = 0,
}SYS_errorType_t;


/*系统异常信息结构体*/
typedef struct 
{
	int  type;		         /*定义见SYS_errorType_t*/
    char description[128];   /*系统信息描述字符串*/
    char reserve[124];      /* 保留 */
}SYS_errorInfo_t;

/* error模块初始化参数 */
typedef struct 
{
    /*异常处理函数指针*/
    int (*pErrorHandleFunc)(SYS_errorInfo_t *pErrorInfo); 
    char reserve[31];  /* 保留 */
}SYS_ErrorInitPrm_t;


/*=============================================================================
                             extern  Variables                                  
==============================================================================*/


/*=============================================================================
                             Function Definition                                  
==============================================================================*/ 

/***************************************************************************
 Function:     SYS_ErrorInit
 Description:  异常上报模块初始化
 Input:        - pErrorPrm: 异常上报模块初始参数
 Output:       无
 Return:       0: 操作成功
               ~0: 操作失败
 Others:       无
****************************************************************************/ 
int SYS_ErrorInit(SYS_ErrorInitPrm_t *pErrorPrm);


/*******************************************************************************
  Function:     SYS_ErrorDel
  Description:  注销Error模块
  Input:        无
  Output:       无
  Return:       无
  Others:       无
*******************************************************************************/
void SYS_ErrorDel(void);


/**************************************************************************
 Function:     SYS_ErrorReport
 Description:  异常上报
 Input:        - pSystemErrorInfo: 系统异常信息指针
 Output:       无
 Return:       0: 操作成功
               -1: 操作失败
 Others:       无
***************************************************************************/ 
int SYS_ErrorReport(SYS_errorInfo_t *pErrorInfo);


#ifdef __cplusplus
}
#endif
#endif // SYS_ERROR_H

